view libgui/qterminal/libqterminal/QTerminal.cc @ 16413:28136851099a

remove _terminal pointer from main_window, it is contained by other Qt object * main-window.cc, main-window.h (main_window::_terminal): Delete member variable. (main_window::get_terminal_view, main_window::get_history_dock_widget, main_window::get_files_dock_widget, main_window::is_closing): Delete unused functions. (main_window::notice_settings): New argument settings. (main_window::handle_command_double_clicked): Don't sent terminal a command here. (main_window::process_settings_dialog_request): New argument, settings. (main_window::read_settings): New argument, settings. Produce debug message if settings is nul. (main_window::write_settings): Produce debug message if settings is nul. (main_window::construct): Make _terminal a local variable and rename to terminal. Change all uses. * QTerminal.cc: New file. (QTerminal::relay_command): New slot. * QTerminal.h (QTerminal::notice_settings, QTerminal::notice_settings): New slots. * QTerminal: Delete. * files_dockwidget.cc, files_dockwidget.h (files_dock_widget::notice_settings): New argument, settings. * file_editor_tab.cc, file_editor_tab.h (file_editor_tab::notice_settings): Changed the slot to accept QSettings pointer rather than retrieve from resource_manager. (file_editor_tabl::file_editor_tab, file_editor_tab::update_lexer): Check that settings is not null before using. * file_editor.cc, file_editor.h (file_editor::notice_settings, file_editor::fetab_settings_changed): New argument, settings. (file_editor::update_lexer, file_editor::file_editor_tab): Check that settings is not null before using. * qterminal-module.mk (qterminal_libqterminal_la_SOURCES): Add QTerminal.cc to the list.
author Daniel J Sebald <daniel.sebald@ieee.org>
date Wed, 03 Apr 2013 00:10:56 -0400
parents
children c89699ca005a
line wrap: on
line source

/*

Copyright (C) 2012 Michael Goffioul.
Copyright (C) 2012 Jacob Dawid.

This file is part of QTerminal.

Foobar is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

QTerminal is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Foobar.  If not, see <http://www.gnu.org/licenses/>.

*/

#include "QTerminal.h"

#include <QSettings>

void
QTerminal::notice_settings (const QSettings *settings)
{
  // QSettings pointer is checked before emitting.

  // Set terminal font:
  QFont term_font = QFont();
  term_font.setFamily(settings->value("terminal/fontName","Courier New").toString());
  term_font.setPointSize(settings->value("terminal/fontSize",10).toInt ());
  setTerminalFont (term_font);

  QString cursorType = settings->value ("terminal/cursorType","ibeam").toString ();
  bool cursorBlinking = settings->value ("terminal/cursorBlinking",true).toBool ();
  if (cursorType == "ibeam")
    setCursorType(QTerminalInterface::IBeamCursor, cursorBlinking);
  else if (cursorType == "block")
    setCursorType(QTerminalInterface::BlockCursor, cursorBlinking);
  else if (cursorType == "underline")
    setCursorType(QTerminalInterface::UnderlineCursor, cursorBlinking);
}

void
QTerminal::relay_command (const QString& command)
{
  sendText (command);
}