void mainwindow::pmode(int i) { switch(i) { case 0 : //Single Print Mode breset(); ui.statusLabel->setText("Single Print Mode"); ui.gview->setDisabled(false); ui.optab->widget(0)->setDisabled(false); isreset=1; break; case 1: // Bulk print Mode reset(); ui.leqroll->setText(""); ui.statusLabel->setText("Bulk Print Mode"); ui.optab->widget(0)->setDisabled(true); isreset = 0; break; case 2: // Selective Print Mode ui.leqroll->clear(); ui.statusLabel->setText("Selective Print Mode"); ui.gview->setDisabled(true); ui.optab->widget(0)->setDisabled(true); } }
// xgetenv replaces b with the value of the named environment variable. void xgetenv(Buf *b, char *name) { char *p; breset(b); p = getenv(name); if(p != nil) bwritestr(b, p); }
// xgetwd replaces b with the current directory. void xgetwd(Buf *b) { char buf[4096]; breset(b); if(getwd(buf, sizeof buf) == nil) fatal("getwd"); bwritestr(b, buf); }
// xgetwd replaces b with the current directory. void xgetwd(Buf *b) { char buf[MAXPATHLEN]; breset(b); if(getcwd(buf, MAXPATHLEN) == nil) fatal("getcwd: %s", strerror(errno)); bwritestr(b, buf); }
// readfile replaces b with the content of the named file. void readfile(Buf *b, char *file) { int fd; breset(b); fd = open(file, OREAD); if(fd < 0) fatal("open %s", file); breadfrom(b, fd); close(fd); }
// readfile replaces b with the content of the named file. void readfile(Buf *b, char *file) { int fd; breset(b); fd = open(file, 0); if(fd < 0) fatal("open %s: %s", file, strerror(errno)); breadfrom(b, fd); close(fd); }
// bpathf is the same as bprintf (on windows it turns / into \ after the printf). // It returns a pointer to the NUL-terminated buffer contents. char* bpathf(Buf *b, char *fmt, ...) { va_list arg; char buf[4096]; breset(b); va_start(arg, fmt); vsnprintf(buf, sizeof buf, fmt, arg); va_end(arg); bwritestr(b, buf); return bstr(b); }
// xrealwd replaces b with the 'real' name for the given path. // real is defined as what getcwd returns in that directory. void xrealwd(Buf *b, char *path) { char buf[4096]; int fd; fd = open(path, OREAD); if(fd2path(fd, buf, sizeof buf) < 0) fatal("fd2path"); close(fd); breset(b); bwritestr(b, buf); }
// install installs the library, package, or binary associated with dir, // which is relative to $GOROOT/src. static void install(char *dir) { char *name, *p, *elem, *prefix, *exe; bool islib, ispkg, isgo, stale, ispackcmd; Buf b, b1, path; Vec compile, files, link, go, missing, clean, lib, extra; Time ttarg, t; int i, j, k, n, doclean, targ; if(vflag) { if(!streq(goos, gohostos) || !streq(goarch, gohostarch)) errprintf("%s (%s/%s)\n", dir, goos, goarch); else errprintf("%s\n", dir); } binit(&b); binit(&b1); binit(&path); vinit(&compile); vinit(&files); vinit(&link); vinit(&go); vinit(&missing); vinit(&clean); vinit(&lib); vinit(&extra); // path = full path to dir. bpathf(&path, "%s/src/%s", goroot, dir); name = lastelem(dir); // For misc/prof, copy into the tool directory and we're done. if(hasprefix(dir, "misc/")) { copy(bpathf(&b, "%s/%s", tooldir, name), bpathf(&b1, "%s/misc/%s", goroot, name), 1); goto out; } // For release, cmd/prof is not included. if((streq(dir, "cmd/prof")) && !isdir(bstr(&path))) { if(vflag > 1) errprintf("skipping %s - does not exist\n", dir); goto out; } // set up gcc command line on first run. if(gccargs.len == 0) { bprintf(&b, "%s %s", defaultcc, defaultcflags); splitfields(&gccargs, bstr(&b)); for(i=0; i<nelem(proto_gccargs); i++) vadd(&gccargs, proto_gccargs[i]); if(defaultcflags[0] == '\0') { for(i=0; i<nelem(proto_gccargs2); i++) vadd(&gccargs, proto_gccargs2[i]); } if(contains(gccargs.p[0], "clang")) { // disable ASCII art in clang errors, if possible vadd(&gccargs, "-fno-caret-diagnostics"); // clang is too smart about unused command-line arguments vadd(&gccargs, "-Qunused-arguments"); } // disable word wrapping in error messages vadd(&gccargs, "-fmessage-length=0"); if(streq(gohostos, "darwin")) { // golang.org/issue/5261 vadd(&gccargs, "-mmacosx-version-min=10.6"); } } if(ldargs.len == 0 && defaultldflags[0] != '\0') { bprintf(&b, "%s", defaultldflags); splitfields(&ldargs, bstr(&b)); } islib = hasprefix(dir, "lib") || streq(dir, "cmd/cc") || streq(dir, "cmd/gc"); ispkg = hasprefix(dir, "pkg"); isgo = ispkg || streq(dir, "cmd/go") || streq(dir, "cmd/cgo"); exe = ""; if(streq(gohostos, "windows")) exe = ".exe"; // Start final link command line. // Note: code below knows that link.p[targ] is the target. ispackcmd = 0; if(islib) { // C library. vadd(&link, "ar"); if(streq(gohostos, "plan9")) vadd(&link, "rc"); else vadd(&link, "rsc"); prefix = ""; if(!hasprefix(name, "lib")) prefix = "lib"; targ = link.len; vadd(&link, bpathf(&b, "%s/pkg/obj/%s_%s/%s%s.a", goroot, gohostos, gohostarch, prefix, name)); } else if(ispkg) { // Go library (package). ispackcmd = 1; vadd(&link, "pack"); // program name - unused here, but all the other cases record one p = bprintf(&b, "%s/pkg/%s_%s/%s", goroot, goos, goarch, dir+4); *xstrrchr(p, '/') = '\0'; xmkdirall(p); targ = link.len; vadd(&link, bpathf(&b, "%s/pkg/%s_%s/%s.a", goroot, goos, goarch, dir+4)); } else if(streq(dir, "cmd/go") || streq(dir, "cmd/cgo")) { // Go command. vadd(&link, bpathf(&b, "%s/%sl", tooldir, gochar)); vadd(&link, "-o"); elem = name; if(streq(elem, "go")) elem = "go_bootstrap"; targ = link.len; vadd(&link, bpathf(&b, "%s/%s%s", tooldir, elem, exe)); } else { // C command. Use gccargs and ldargs. if(streq(gohostos, "plan9")) { vadd(&link, bprintf(&b, "%sl", gohostchar)); vadd(&link, "-o"); targ = link.len; vadd(&link, bpathf(&b, "%s/%s", tooldir, name)); } else { vcopy(&link, gccargs.p, gccargs.len); vcopy(&link, ldargs.p, ldargs.len); if(sflag) vadd(&link, "-static"); vadd(&link, "-o"); targ = link.len; vadd(&link, bpathf(&b, "%s/%s%s", tooldir, name, exe)); if(streq(gohostarch, "amd64")) vadd(&link, "-m64"); else if(streq(gohostarch, "386")) vadd(&link, "-m32"); } } ttarg = mtime(link.p[targ]); // Gather files that are sources for this target. // Everything in that directory, and any target-specific // additions. xreaddir(&files, bstr(&path)); // Remove files beginning with . or _, // which are likely to be editor temporary files. // This is the same heuristic build.ScanDir uses. // There do exist real C files beginning with _, // so limit that check to just Go files. n = 0; for(i=0; i<files.len; i++) { p = files.p[i]; if(hasprefix(p, ".") || (hasprefix(p, "_") && hassuffix(p, ".go"))) xfree(p); else files.p[n++] = p; } files.len = n; for(i=0; i<nelem(deptab); i++) { if(streq(dir, deptab[i].prefix) || (hassuffix(deptab[i].prefix, "/") && hasprefix(dir, deptab[i].prefix))) { for(j=0; (p=deptab[i].dep[j])!=nil; j++) { breset(&b1); bwritestr(&b1, p); bsubst(&b1, "$GOROOT", goroot); bsubst(&b1, "$GOOS", goos); bsubst(&b1, "$GOARCH", goarch); p = bstr(&b1); if(hassuffix(p, ".a")) { vadd(&lib, bpathf(&b, "%s", p)); continue; } if(hassuffix(p, "/*")) { bpathf(&b, "%s/%s", bstr(&path), p); b.len -= 2; xreaddir(&extra, bstr(&b)); bprintf(&b, "%s", p); b.len -= 2; for(k=0; k<extra.len; k++) vadd(&files, bpathf(&b1, "%s/%s", bstr(&b), extra.p[k])); continue; } if(hasprefix(p, "-")) { p++; n = 0; for(k=0; k<files.len; k++) { if(hasprefix(files.p[k], p)) xfree(files.p[k]); else files.p[n++] = files.p[k]; } files.len = n; continue; } vadd(&files, p); } } } vuniq(&files); // Convert to absolute paths. for(i=0; i<files.len; i++) { if(!isabs(files.p[i])) { bpathf(&b, "%s/%s", bstr(&path), files.p[i]); xfree(files.p[i]); files.p[i] = btake(&b); } } // Is the target up-to-date? stale = rebuildall; n = 0; for(i=0; i<files.len; i++) { p = files.p[i]; for(j=0; j<nelem(depsuffix); j++) if(hassuffix(p, depsuffix[j])) goto ok; xfree(files.p[i]); continue; ok: t = mtime(p); if(t != 0 && !hassuffix(p, ".a") && !shouldbuild(p, dir)) { xfree(files.p[i]); continue; } if(hassuffix(p, ".go")) vadd(&go, p); if(t > ttarg) stale = 1; if(t == 0) { vadd(&missing, p); files.p[n++] = files.p[i]; continue; } files.p[n++] = files.p[i]; } files.len = n; // If there are no files to compile, we're done. if(files.len == 0) goto out; for(i=0; i<lib.len && !stale; i++) if(mtime(lib.p[i]) > ttarg) stale = 1; if(!stale) goto out; // For package runtime, copy some files into the work space. if(streq(dir, "pkg/runtime")) { copy(bpathf(&b, "%s/arch_GOARCH.h", workdir), bpathf(&b1, "%s/arch_%s.h", bstr(&path), goarch), 0); copy(bpathf(&b, "%s/defs_GOOS_GOARCH.h", workdir), bpathf(&b1, "%s/defs_%s_%s.h", bstr(&path), goos, goarch), 0); p = bpathf(&b1, "%s/signal_%s_%s.h", bstr(&path), goos, goarch); if(isfile(p)) copy(bpathf(&b, "%s/signal_GOOS_GOARCH.h", workdir), p, 0); copy(bpathf(&b, "%s/os_GOOS.h", workdir), bpathf(&b1, "%s/os_%s.h", bstr(&path), goos), 0); copy(bpathf(&b, "%s/signals_GOOS.h", workdir), bpathf(&b1, "%s/signals_%s.h", bstr(&path), goos), 0); } // Generate any missing files; regenerate existing ones. for(i=0; i<files.len; i++) { p = files.p[i]; elem = lastelem(p); for(j=0; j<nelem(gentab); j++) { if(gentab[j].gen == nil) continue; if(hasprefix(elem, gentab[j].nameprefix)) { if(vflag > 1) errprintf("generate %s\n", p); gentab[j].gen(bstr(&path), p); // Do not add generated file to clean list. // In pkg/runtime, we want to be able to // build the package with the go tool, // and it assumes these generated files already // exist (it does not know how to build them). // The 'clean' command can remove // the generated files. goto built; } } // Did not rebuild p. if(find(p, missing.p, missing.len) >= 0) fatal("missing file %s", p); built:; } // One more copy for package runtime. // The last batch was required for the generators. // This one is generated. if(streq(dir, "pkg/runtime")) { copy(bpathf(&b, "%s/zasm_GOOS_GOARCH.h", workdir), bpathf(&b1, "%s/zasm_%s_%s.h", bstr(&path), goos, goarch), 0); } // Generate .c files from .goc files. if(streq(dir, "pkg/runtime")) { for(i=0; i<files.len; i++) { p = files.p[i]; if(!hassuffix(p, ".goc")) continue; // b = path/zp but with _goos_goarch.c instead of .goc bprintf(&b, "%s%sz%s", bstr(&path), slash, lastelem(p)); b.len -= 4; bwritef(&b, "_%s_%s.c", goos, goarch); goc2c(p, bstr(&b)); vadd(&files, bstr(&b)); } vuniq(&files); } if((!streq(goos, gohostos) || !streq(goarch, gohostarch)) && isgo) { // We've generated the right files; the go command can do the build. if(vflag > 1) errprintf("skip build for cross-compile %s\n", dir); goto nobuild; } // Compile the files. for(i=0; i<files.len; i++) { if(!hassuffix(files.p[i], ".c") && !hassuffix(files.p[i], ".s")) continue; name = lastelem(files.p[i]); vreset(&compile); if(!isgo) { // C library or tool. if(streq(gohostos, "plan9")) { vadd(&compile, bprintf(&b, "%sc", gohostchar)); vadd(&compile, "-FTVwp"); vadd(&compile, "-DPLAN9"); vadd(&compile, "-D__STDC__=1"); vadd(&compile, "-D__SIZE_TYPE__=ulong"); // for GNU Bison vadd(&compile, bpathf(&b, "-I%s/include/plan9", goroot)); vadd(&compile, bpathf(&b, "-I%s/include/plan9/%s", goroot, gohostarch)); } else { vcopy(&compile, gccargs.p, gccargs.len); vadd(&compile, "-c"); if(streq(gohostarch, "amd64")) vadd(&compile, "-m64"); else if(streq(gohostarch, "386")) vadd(&compile, "-m32"); vadd(&compile, "-I"); vadd(&compile, bpathf(&b, "%s/include", goroot)); } if(streq(dir, "lib9")) vadd(&compile, "-DPLAN9PORT"); vadd(&compile, "-I"); vadd(&compile, bstr(&path)); // lib9/goos.c gets the default constants hard-coded. if(streq(name, "goos.c")) { vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GOOS=\"%s\"", goos)); vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GOARCH=\"%s\"", goarch)); bprintf(&b1, "%s", goroot_final); bsubst(&b1, "\\", "\\\\"); // turn into C string vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GOROOT=\"%s\"", bstr(&b1))); vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GOVERSION=\"%s\"", goversion)); vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GOARM=\"%s\"", goarm)); vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GO386=\"%s\"", go386)); vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GO_EXTLINK_ENABLED=\"%s\"", goextlinkenabled)); } // gc/lex.c records the GOEXPERIMENT setting used during the build. if(streq(name, "lex.c")) { xgetenv(&b, "GOEXPERIMENT"); vadd(&compile, "-D"); vadd(&compile, bprintf(&b1, "GOEXPERIMENT=\"%s\"", bstr(&b))); } } else { // Supporting files for a Go package. if(hassuffix(files.p[i], ".s")) vadd(&compile, bpathf(&b, "%s/%sa", tooldir, gochar)); else { vadd(&compile, bpathf(&b, "%s/%sc", tooldir, gochar)); vadd(&compile, "-F"); vadd(&compile, "-V"); vadd(&compile, "-w"); } vadd(&compile, "-I"); vadd(&compile, workdir); vadd(&compile, "-I"); vadd(&compile, bprintf(&b, "%s/pkg/%s_%s", goroot, goos, goarch)); vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GOOS_%s", goos)); vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GOARCH_%s", goarch)); vadd(&compile, "-D"); vadd(&compile, bprintf(&b, "GOOS_GOARCH_%s_%s", goos, goarch)); } bpathf(&b, "%s/%s", workdir, lastelem(files.p[i])); doclean = 1; if(!isgo && streq(gohostos, "darwin")) { // To debug C programs on OS X, it is not enough to say -ggdb // on the command line. You have to leave the object files // lying around too. Leave them in pkg/obj/, which does not // get removed when this tool exits. bpathf(&b1, "%s/pkg/obj/%s", goroot, dir); xmkdirall(bstr(&b1)); bpathf(&b, "%s/%s", bstr(&b1), lastelem(files.p[i])); doclean = 0; } // Change the last character of the output file (which was c or s). if(streq(gohostos, "plan9")) b.p[b.len-1] = gohostchar[0]; else b.p[b.len-1] = 'o'; vadd(&compile, "-o"); vadd(&compile, bstr(&b)); vadd(&compile, files.p[i]); bgrunv(bstr(&path), CheckExit, &compile); vadd(&link, bstr(&b)); if(doclean) vadd(&clean, bstr(&b)); } bgwait(); if(isgo) { // The last loop was compiling individual files. // Hand the Go files to the compiler en masse. vreset(&compile); vadd(&compile, bpathf(&b, "%s/%sg", tooldir, gochar)); bpathf(&b, "%s/_go_.a", workdir); vadd(&compile, "-pack"); vadd(&compile, "-o"); vadd(&compile, bstr(&b)); vadd(&clean, bstr(&b)); if(!ispackcmd) vadd(&link, bstr(&b)); vadd(&compile, "-p"); if(hasprefix(dir, "pkg/")) vadd(&compile, dir+4); else vadd(&compile, "main"); if(streq(dir, "pkg/runtime")) vadd(&compile, "-+"); vcopy(&compile, go.p, go.len); runv(nil, bstr(&path), CheckExit, &compile); if(ispackcmd) { xremove(link.p[targ]); dopack(link.p[targ], bstr(&b), &link.p[targ+1], link.len - (targ+1)); goto nobuild; } } if(!islib && !isgo) { // C binaries need the libraries explicitly, and -lm. vcopy(&link, lib.p, lib.len); if(!streq(gohostos, "plan9")) vadd(&link, "-lm"); } // Remove target before writing it. xremove(link.p[targ]); runv(nil, nil, CheckExit, &link); nobuild: // In package runtime, we install runtime.h and cgocall.h too, // for use by cgo compilation. if(streq(dir, "pkg/runtime")) { copy(bpathf(&b, "%s/pkg/%s_%s/cgocall.h", goroot, goos, goarch), bpathf(&b1, "%s/src/pkg/runtime/cgocall.h", goroot), 0); copy(bpathf(&b, "%s/pkg/%s_%s/runtime.h", goroot, goos, goarch), bpathf(&b1, "%s/src/pkg/runtime/runtime.h", goroot), 0); } out: for(i=0; i<clean.len; i++) xremove(clean.p[i]); bfree(&b); bfree(&b1); bfree(&path); vfree(&compile); vfree(&files); vfree(&link); vfree(&go); vfree(&missing); vfree(&clean); vfree(&lib); vfree(&extra); }
// genrun is the generic run implementation. static void genrun(Buf *b, char *dir, int mode, Vec *argv, int wait) { int i, p[2], pid; Buf b1, cmd; char *q; while(nbg >= maxnbg) bgwait1(); binit(&b1); binit(&cmd); if(!isabs(argv->p[0])) { bpathf(&b1, "/bin/%s", argv->p[0]); free(argv->p[0]); argv->p[0] = xstrdup(bstr(&b1)); } // Generate a copy of the command to show in a log. // Substitute $WORK for the work directory. for(i=0; i<argv->len; i++) { if(i > 0) bwritestr(&cmd, " "); q = argv->p[i]; if(workdir != nil && hasprefix(q, workdir)) { bwritestr(&cmd, "$WORK"); q += strlen(workdir); } bwritestr(&cmd, q); } if(vflag > 1) errprintf("%s\n", bstr(&cmd)); if(b != nil) { breset(b); if(pipe(p) < 0) fatal("pipe"); } switch(pid = fork()) { case -1: fatal("fork"); case 0: if(b != nil) { close(0); close(p[0]); dup(p[1], 1); dup(p[1], 2); if(p[1] > 2) close(p[1]); } if(dir != nil) { if(chdir(dir) < 0) { fprint(2, "chdir: %r\n"); _exits("chdir"); } } vadd(argv, nil); exec(argv->p[0], argv->p); fprint(2, "%s\n", bstr(&cmd)); fprint(2, "exec: %r\n"); _exits("exec"); } if(b != nil) { close(p[1]); breadfrom(b, p[0]); close(p[0]); } if(nbg < 0) fatal("bad bookkeeping"); bg[nbg].pid = pid; bg[nbg].mode = mode; bg[nbg].cmd = btake(&cmd); bg[nbg].b = b; nbg++; if(wait) bgwait(); bfree(&cmd); bfree(&b1); }
// genrun is the generic run implementation. static void genrun(Buf *b, char *dir, int mode, Vec *argv, int wait) { int i, p[2], pid; Buf cmd; char *q; while(nbg >= maxnbg) bgwait1(); // Generate a copy of the command to show in a log. // Substitute $WORK for the work directory. binit(&cmd); for(i=0; i<argv->len; i++) { if(i > 0) bwritestr(&cmd, " "); q = argv->p[i]; if(workdir != nil && hasprefix(q, workdir)) { bwritestr(&cmd, "$WORK"); q += strlen(workdir); } bwritestr(&cmd, q); } //if(vflag > 1) xprintf("%s\n", bstr(&cmd)); if(b != nil) { breset(b); if(pipe(p) < 0) fatal("pipe: %s", strerror(errno)); } switch(pid = fork()) { case -1: fatal("fork: %s", strerror(errno)); case 0: if(b != nil) { close(0); close(p[0]); dup2(p[1], 1); dup2(p[1], 2); if(p[1] > 2) close(p[1]); } if(dir != nil) { if(chdir(dir) < 0) { fprintf(stderr, "chdir %s: %s\n", dir, strerror(errno)); _exit(1); } } vadd(argv, nil); execvp(argv->p[0], argv->p); fprintf(stderr, "%s\n", bstr(&cmd)); fprintf(stderr, "exec %s: %s\n", argv->p[0], strerror(errno)); _exit(1); } if(b != nil) { close(p[1]); breadfrom(b, p[0]); close(p[0]); } if(nbg < 0) fatal("bad bookkeeping"); bg[nbg].pid = pid; bg[nbg].mode = mode; bg[nbg].cmd = btake(&cmd); bg[nbg].b = b; nbg++; if(wait) bgwait(); bfree(&cmd); }
mainwindow::mainwindow() { // Interface Construction ui.setupUi(this); pt_mth = pt_type = -1; evt = isreset = 1; pdfpath = "./PDF/"; lstroll = ""; dt = QDate::currentDate().toString("dd.MM.yyyy"); ui.date->setText(dt); mwsdt = new sdetails(); // Scene Construction setdmscene(); // Load Modules btable = new bulkprint(this,ui.tab_5); btable->show(); selprint = new selectiveprint(this); setupmenu(); // Start the Authentication Dialog AuthenDialog *authendialog = new AuthenDialog(this); authendialog->show(); // Printer Info QPrinter print; QPrinterInfo pinfo(print); ui.pinfo->setText(pinfo.printerName());//.section("",-1,-1)); // Fetch Printing Positions QFile file2("./positions.dat"); file2.open(QIODevice::ReadOnly); QDataStream inp(&file2); inp >> lt; //set printer setprinter(); //Connections connect(ui.bselback,SIGNAL(pressed()),selprint,SLOT(back())); connect(ui.bqreset,SIGNAL(pressed()),this,SLOT(breset())); connect(ui.bqprint,SIGNAL(pressed()),this,SLOT(qprint())); connect(ui.bbulkprintall,SIGNAL(pressed()),this,SLOT(bprintall())); connect(ui.bbulkselprint,SIGNAL(pressed()),this,SLOT(bprintsel())); connect(ui.bselnext,SIGNAL(released()),selprint,SLOT(next())); connect(ui.babortprint,SIGNAL(released()),this,SLOT(abortprint())); connect(ui.bpositions,SIGNAL(released()),this,SLOT(positionsdialog())); connect(ui.changeButton,SIGNAL(released()),this,SLOT(changepasswd())); connect(ui.leqroll,SIGNAL(textChanged(const QString &)),this,SLOT(rollchanged(const QString &))); connect(ui.leqsname,SIGNAL(textChanged(const QString &)),this,SLOT(snamechanged(const QString &))); connect(ui.leqfname,SIGNAL(textChanged(const QString &)),this,SLOT(fnamechanged(const QString &))); connect(ui.cbcourse,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(coursechanged(const QString &))); connect(ui.cbbranch,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(branchchanged(const QString &))); connect(ui.cbyear,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(yearchanged(const QString &))); connect(ui.cbsem,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(semchanged(const QString &))); //connect(ui.cbpl,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(ptchanged(const QString &))); connect(ui.leqfrom,SIGNAL(textChanged(const QString &)),this,SLOT(fromchanged(const QString &))); connect(ui.leqto,SIGNAL(textChanged(const QString &)),this,SLOT(tochanged(const QString &))); connect(ui.lepurpose,SIGNAL(textChanged(const QString &)),this,SLOT(ppchanged(const QString &))); connect(ui.cbgen,SIGNAL(currentIndexChanged(int)),this,SLOT(genchanged(int))); connect(ui.modetab,SIGNAL(currentChanged(int)),this,SLOT(pmode(int))); connect(ui.ptcombo,SIGNAL(currentIndexChanged(QString)),ui.ltype,SLOT(setText(const QString &))); connect(ui.outbox,SIGNAL(currentIndexChanged(QString)),ui.lout,SLOT(setText(const QString &))); connect(ui.gbcno,SIGNAL(toggled(bool)),this,SLOT(cidtoggle(bool))); connect(ui.sbcno,SIGNAL(valueChanged (int)),this,SLOT(cidvalue(int))); connect(ui.actionQuit,SIGNAL(triggered()),this,SLOT(close())); connect(ui.actionAbout,SIGNAL(triggered()),this,SLOT(about_p())); connect(actionselprintall,SIGNAL(triggered()),selprint,SLOT(printall())); connect(actionselprintsel,SIGNAL(triggered()),selprint,SLOT(printsel())); connect(ui.actionPrint,SIGNAL(triggered()),this,SLOT(qprint())); connect(ui.actionReset,SIGNAL(triggered()),this,SLOT(reset())); ui.leqroll->setFocus(); ui.lepurpose->setText("Bus Pass"); qp1 = "select STUDENT_ID from student_admission where STUDENT_ROLLNO="; qp2 = "select student_name,father_name,gender from student_info where student_id=" ; qp3 = "select course,branch_id,current_sem,current_year from student_academic where student_id=" ; }