//========== // PUBLIC //========== page_main::page_main(QWidget *parent) : PageWidget(parent), ui(new Ui::page_main()){ ui->setupUi(this); findShort = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_F), this, SLOT(showFind())); ui->treeWidget->setMouseTracking(true); ui->treeWidget->setSortingEnabled(false); //the QTreeView sort flag always puts them in backwards (reverse-alphabetical) connect(ui->treeWidget, SIGNAL(itemActivated(QTreeWidgetItem*,int)), this, SLOT(itemTriggered(QTreeWidgetItem*, int)) ); connect(ui->treeWidget, SIGNAL(itemPressed(QTreeWidgetItem*,int)), this, SLOT(itemTriggered(QTreeWidgetItem*, int)) ); connect(ui->lineEdit, SIGNAL(textChanged(QString)), this, SLOT(searchChanged(QString)) ); }
SourceViewer::SourceViewer(const QString &source, const QString &title, const QUrl &url, QWidget *parent) : QDialog(parent) , m_edit(new QPlainTextEdit(tr("Loading..."), this)) , m_highlighter(new SourceHighlighter(m_edit->document())) , m_plainTextEditSearch(new PlainTextEditSearch(m_edit, this)) , m_layout(new QVBoxLayout(this)) , m_menuBar(new QMenuBar(this)) , m_editMenu(new QMenu(tr("&Edit"), m_menuBar)) , m_findAction(new QAction(tr("&Find"), m_editMenu)) , m_viewMenu(new QMenu(tr("&View"), m_menuBar)) , m_setWrappingAction(new QAction(tr("&Wrap lines"), m_viewMenu)) { setWindowTitle(QString(tr("Source of Page ")).append(title)); resize(640, 480); m_source = new QString(source); m_edit->setLineWrapMode(QPlainTextEdit::NoWrap); m_edit->setReadOnly(true); QFont font = m_edit->font(); font.setFamily(QLatin1String("Monospace")); m_edit->setFont(font); m_edit->setLineWidth(0); m_edit->setFrameShape(QFrame::NoFrame); m_menuBar->addMenu(m_editMenu); m_editMenu->addAction(m_findAction); m_findAction->setShortcuts(QKeySequence::Find); connect(m_findAction, SIGNAL(triggered()), m_plainTextEditSearch, SLOT(showFind())); m_menuBar->addMenu(m_viewMenu); m_viewMenu->addAction(m_setWrappingAction); m_setWrappingAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_W)); m_setWrappingAction->setCheckable(true); connect(m_setWrappingAction, SIGNAL(triggered(bool)), this, SLOT(setWrapping(bool))); m_layout->setSpacing(0); m_layout->setContentsMargins(0, 0, 0, 0); m_layout->addWidget(m_menuBar); m_layout->addWidget(m_plainTextEditSearch); m_layout->addWidget(m_edit); setLayout(m_layout); m_request = new QNetworkRequest(url); m_request->setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); m_reply = BrowserApplication::networkAccessManager()->get(*m_request); connect(m_reply, SIGNAL(finished()), this, SLOT(loadingFinished())); m_reply->setParent(this); }
SourceView::SourceView(QWidget *parent,QFont & efont,bool line, QList<QColor> edcolors, QList<QColor> hicolors ) : QWidget(parent) { splitter=new MiniSplitter(this); splitter->setOrientation(Qt::Vertical); QFrame *framebis=new QFrame(splitter); framebis->setLineWidth(0); framebis->setFrameShape(QFrame::NoFrame); framebis->setFrameShadow(QFrame::Plain); framebis->setFrameStyle(QFrame::NoFrame); QVBoxLayout* mainlay = new QVBoxLayout(framebis ); mainlay->setSpacing(0); mainlay->setMargin(0); centralToolBar=new QToolBar("ToolBar",framebis); centralToolBar->setFloatable(false); centralToolBar->setOrientation(Qt::Horizontal); centralToolBar->setMovable(false); centralToolBar->setIconSize(QSize(16,16 )); centralToolBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); mainlay->addWidget(centralToolBar); QAction *Act = new QAction(getIcon(":/images/fileopen16.png"), tr("Open"), this); connect(Act, SIGNAL(triggered()), this, SLOT(fileOpen())); centralToolBar->addAction(Act); centralToolBar->addSeparator(); titleLabel=new QLabel("(read only)",centralToolBar); centralToolBar->addWidget(titleLabel); centralToolBar->addSeparator(); Act = new QAction(getIcon(":/images/diff.png"), tr("Check differences"), this); connect(Act, SIGNAL(triggered()), this, SLOT(checkDiff())); centralToolBar->addAction(Act); QFrame *frame=new QFrame(framebis); frame->setLineWidth(0); frame->setFrameShape(QFrame::NoFrame); frame->setFrameShadow(QFrame::Plain); frame->setFrameStyle(QFrame::NoFrame); mainlay->addWidget(frame); lastdocument=""; editor=new LightLatexEditor(frame,efont,edcolors,hicolors,""); connect(editor, SIGNAL(requestFind()), this, SLOT(showFind())); connect(editor, SIGNAL(requestGotoLine()), this, SLOT(showGoto())); m_lineNumberWidget = new LightLineNumberWidget( editor, frame); m_lineNumberWidget->setFont(efont); QFontMetrics fm( efont ); m_lineNumberWidget->setFixedWidth( fm.width( "00000" ) + 22 ); QHBoxLayout* lay = new QHBoxLayout( frame ); lay->setSpacing(0); lay->setMargin(0); lay->addWidget( m_lineNumberWidget ); lay->addWidget( editor ); setFocusProxy( editor ); setLineNumberWidgetVisible(line); Stack=new QStackedWidget(this); Stack->setLineWidth(0); Stack->setFrameShape(QFrame::NoFrame); Stack->setFrameShadow(QFrame::Plain); findwidget=new LightFindWidget(Stack); Stack->addWidget(findwidget); findwidget->SetEditor(editor); connect(findwidget, SIGNAL( requestHide() ), Stack, SLOT( hide() ) ); connect(findwidget, SIGNAL( requestExtension() ), this, SLOT( showFind() ) ); gotolinewidget=new LightGotoLineWidget(Stack); Stack->addWidget(gotolinewidget); gotolinewidget->SetEditor(editor); connect(gotolinewidget, SIGNAL( requestHide() ), Stack, SLOT( hide() ) ); Stack->hide(); splitter->addWidget(framebis); splitter->addWidget(Stack); QVBoxLayout *mainlayout= new QVBoxLayout(this); mainlayout->setSpacing(0); mainlayout->setMargin(0); mainlayout->addWidget(splitter); }