예제 #1
0
파일: MainWindow.cpp 프로젝트: Fale/qtmoko
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;
}
예제 #2
0
파일: MainWindow.cpp 프로젝트: Fale/qtmoko
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);
}