void MainWindow::showPreferences() { Session *sess = _Sessions.at(tabs->currentIndex()); Profile *prof = new Profile(sess->profileKey()); Preferences *pd = new Preferences(prof); pd->setModal(true); #ifdef QTOPIA_PHONE if (Qtopia::mousePreferred) QtopiaApplication::instance()->hideInputMethod(); #endif pd->exec(); if (pd->result()==QDialog::Accepted) { // apply the changes and update the current session settings Profile *p = pd->profile(); TerminalDisplay *display = sess->views()[0]; display->setVTFont(QFont(p->fontName(), p->fontSize())); const ColorScheme* colorScheme = ColorSchemeManager::instance()->findColorScheme(p->colorScheme()); ColorEntry table[TABLE_COLORS]; colorScheme->getColorTable(table, display->randomSeed()); display->setColorTable(table); display->setOpacity(colorScheme->opacity()); display->setKeyboardCursorShape((TerminalDisplay::KeyboardCursorShape)p->cursorShape()); sess->setKeyBindings(p->keyboard()); sess->setHistoryType(HistoryTypeBuffer(p->historyLines())); sess->setProfileKey(p->name()); p->saveProfile(p->name()); } #ifdef QTOPIA_PHONE if (Qtopia::mousePreferred) QtopiaApplication::instance()->showInputMethod(); #endif delete pd; }
void MainWindow::addSession(const char *name) { TerminalDisplay *display = new TerminalDisplay(); Profile *profile = new Profile(name); Session *session = new Session(*profile); const ColorScheme* colorScheme = ColorSchemeManager::instance()->findColorScheme(profile->colorScheme()); //TODO Temporary settings used here display->setBellMode(0); display->setTerminalSizeHint(false); display->setTripleClickMode(TerminalDisplay::SelectWholeLine); display->setTerminalSizeStartup(false); display->setScrollBarPosition(TerminalDisplay::ScrollBarRight); display->setRandomSeed(session->sessionId() * 31); display->setVTFont(QFont(profile->fontName(), profile->fontSize())); //ColorSchemeManager::instance()->addColorScheme(new ColorScheme(*colorScheme)); ColorEntry table[TABLE_COLORS]; colorScheme->getColorTable(table, display->randomSeed()); display->setColorTable(table); display->setOpacity(colorScheme->opacity()); display->setKeyboardCursorShape((TerminalDisplay::KeyboardCursorShape)profile->cursorShape()); session->addView(display); int tabid = tabs->addTab(display,QIcon(":icon/konsole"), tr(name)); session->setTitle(Session::NameRole,name); session->setProgram(profile->command()); session->setHistoryType( HistoryTypeBuffer(profile->historyLines()) ); session->setProfileKey(profile->name()); session->setInitialWorkingDirectory(QDir::homePath()); connect(session, SIGNAL(finished(QObject*)), this, SLOT(finished(QObject*))); session->setKeyBindings(profile->keyboard()); _sessionCount++; _Sessions.append(session); session->run(); tabs->setCurrentIndex(tabid); display->setFocus(Qt::OtherFocusReason); }