Bladeren bron

Insert line end

Kandrashin Denis 12 jaren geleden
bovenliggende
commit
1da667dbcd
6 gewijzigde bestanden met toevoegingen van 90 en 3 verwijderingen
  1. 23 0
      source/fb2main.cpp
  2. 4 0
      source/fb2main.hpp
  3. 24 0
      source/fb2text.cpp
  4. 1 0
      source/fb2text.hpp
  5. BIN
      source/ts/ru.qm
  6. 38 3
      source/ts/ru.ts

+ 23 - 0
source/fb2main.cpp

@@ -299,6 +299,10 @@ void FbMainWindow::createActions()
     act->setShortcuts(QKeySequence::Paste);
     act->setStatusTip(tr("Paste the clipboard's contents into the current selection"));
     menu->addAction(act);
+
+    actionPasteText = act = new QAction(tr("Paste (no style)"), this);
+    menu->addAction(act);
+
     clipboardDataChanged();
 
     menu->addSeparator();
@@ -364,8 +368,21 @@ void FbMainWindow::createActions()
     actionDate = act = new QAction(tr("&Date"), this);
     menu->addAction(act);
 
+    menu->addSeparator();
+
+    actionParaSeparator = act = new QAction(tr("Paragraph"), this);
+    menu->addAction(act);
+
+    actionLineSeparator = act = new QAction(tr("Line end"), this);
+    menu->addAction(act);
+
     menuText = menu = menuBar()->addMenu(tr("Fo&rmat"));
 
+    actionClearFormat = act = new QAction(tr("Clear format"), this);
+    menu->addAction(act);
+
+    menu->addSeparator();
+
     actionTextBold = act = new QAction(FbIcon("format-text-bold"), tr("&Bold"), this);
     act->setShortcuts(QKeySequence::Bold);
     act->setCheckable(true);
@@ -642,7 +659,9 @@ void FbMainWindow::createTextToolbar()
     connect(actionCut, SIGNAL(triggered()), textEdit->pageAction(QWebPage::Cut), SIGNAL(triggered()));
     connect(actionCopy, SIGNAL(triggered()), textEdit->pageAction(QWebPage::Copy), SIGNAL(triggered()));
     connect(actionPaste, SIGNAL(triggered()), textEdit->pageAction(QWebPage::Paste), SIGNAL(triggered()));
+    connect(actionPasteText, SIGNAL(triggered()), textEdit->pageAction(QWebPage::PasteAndMatchStyle), SIGNAL(triggered()));
 
+    connect(actionClearFormat, SIGNAL(triggered()), textEdit->pageAction(QWebPage::RemoveFormat), SIGNAL(triggered()));
     connect(actionTextBold, SIGNAL(triggered()), textEdit->pageAction(QWebPage::ToggleBold), SIGNAL(triggered()));
     connect(actionTextItalic, SIGNAL(triggered()), textEdit->pageAction(QWebPage::ToggleItalic), SIGNAL(triggered()));
     connect(actionTextStrike, SIGNAL(triggered()), textEdit->pageAction(QWebPage::ToggleStrikethrough), SIGNAL(triggered()));
@@ -665,6 +684,9 @@ void FbMainWindow::createTextToolbar()
     connect(actionDate, SIGNAL(triggered()), textPage, SLOT(insertDate()));
     connect(actionBody, SIGNAL(triggered()), textPage, SLOT(insertBody()));
 
+    connect(actionParaSeparator, SIGNAL(triggered()), textEdit->pageAction(QWebPage::InsertParagraphSeparator), SIGNAL(triggered()));
+    connect(actionLineSeparator, SIGNAL(triggered()), textEdit->pageAction(QWebPage::InsertLineSeparator), SIGNAL(triggered()));
+
     connect(actionZoomIn, SIGNAL(triggered()), textEdit, SLOT(zoomIn()));
     connect(actionZoomOut, SIGNAL(triggered()), textEdit, SLOT(zoomOut()));
     connect(actionZoomReset, SIGNAL(triggered()), textEdit, SLOT(zoomReset()));
@@ -858,6 +880,7 @@ void FbMainWindow::clipboardDataChanged()
 {
     if (const QMimeData *md = QApplication::clipboard()->mimeData()) {
         actionPaste->setEnabled(md->hasText());
+        actionPasteText->setEnabled(md->hasText());
     }
 }
 

+ 4 - 0
source/fb2main.hpp

@@ -118,6 +118,7 @@ private:
         *actionCut,
         *actionCopy,
         *actionPaste,
+        *actionPasteText,
         *actionSelect,
         *actionFind,
         *actionReplace,
@@ -134,6 +135,9 @@ private:
         *actionStanza,
         *actionAuthor,
         *actionSection,
+        *actionParaSeparator,
+        *actionLineSeparator,
+        *actionClearFormat,
         *actionTextBold,
         *actionTextItalic,
         *actionTextStrike,

+ 24 - 0
source/fb2text.cpp

@@ -12,6 +12,7 @@
 #include <QFileDialog>
 #include <QInputDialog>
 #include <QMainWindow>
+#include <QMenu>
 #include <QNetworkRequest>
 #include <QStyle>
 #include <QStyleOptionFrame>
@@ -409,6 +410,8 @@ FbTextEdit::FbTextEdit(QWidget *parent)
     , m_noteView(0)
     , m_thread(0)
 {
+    setContextMenuPolicy(Qt::CustomContextMenu);
+    connect(this, SIGNAL(customContextMenuRequested(QPoint)), SLOT(contextMenu(QPoint)));
     setPage(new FbTextPage(this));
 }
 
@@ -454,6 +457,27 @@ void FbTextEdit::mouseMoveEvent(QMouseEvent *event)
     QWebView::mouseMoveEvent(event);
 }
 
+void FbTextEdit::contextMenu(const QPoint &pos)
+{
+    QMenu menu, *submenu;
+
+    submenu = menu.addMenu(tr("Fo&rmat"));
+    submenu->addAction(pageAction(QWebPage::ToggleBold));
+    submenu->addAction(pageAction(QWebPage::ToggleItalic));
+    submenu->addAction(pageAction(QWebPage::ToggleStrikethrough));
+    submenu->addAction(pageAction(QWebPage::ToggleSuperscript));
+    submenu->addAction(pageAction(QWebPage::ToggleSubscript));
+
+    menu.addSeparator();
+
+    menu.addAction(pageAction(QWebPage::Cut));
+    menu.addAction(pageAction(QWebPage::Copy));
+    menu.addAction(pageAction(QWebPage::Paste));
+    menu.addAction(pageAction(QWebPage::PasteAndMatchStyle));
+
+    menu.exec(mapToGlobal(pos));
+}
+
 void FbTextEdit::linkHovered(const QString &link, const QString &title, const QString &textContent)
 {
     Q_UNUSED(title);

+ 1 - 0
source/fb2text.hpp

@@ -144,6 +144,7 @@ public slots:
 
 private slots:
     void linkHovered(const QString &link, const QString &title, const QString &textContent);
+    void contextMenu(const QPoint &pos);
 
 private:
     void execCommand(const QString &cmd, const QString &arg);

BIN
source/ts/ru.qm


+ 38 - 3
source/ts/ru.ts

@@ -1,6 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
 <TS version="2.0" language="ru_RU">
+<context>
+    <name>Dialog</name>
+    <message>
+        <source>Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Tab 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Tab 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>FbAuthorDlg</name>
     <message>
@@ -191,11 +210,11 @@
     <name>FbListModel</name>
     <message>
         <source>File name</source>
-        <translation type="unfinished"></translation>
+        <translation>Имя файла</translation>
     </message>
     <message>
         <source>Size</source>
-        <translation type="unfinished"></translation>
+        <translation>Размер</translation>
     </message>
 </context>
 <context>
@@ -435,7 +454,7 @@
     </message>
     <message>
         <source>&amp;Web inspector</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Инспектор</translation>
     </message>
     <message>
         <source>Settings</source>
@@ -521,6 +540,18 @@
         <source>Pictures</source>
         <translation>Иллюстрации</translation>
     </message>
+    <message>
+        <source>Paragraph</source>
+        <translation>Новый абзац</translation>
+    </message>
+    <message>
+        <source>Line end</source>
+        <translation>Конец строки</translation>
+    </message>
+    <message>
+        <source>Clear format</source>
+        <translation>&amp;Очистить формат</translation>
+    </message>
 </context>
 <context>
     <name>FbNodeDlg</name>
@@ -616,6 +647,10 @@
         <source>URL:</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <source>Fo&amp;rmat</source>
+        <translation type="unfinished">Фо&amp;рмат</translation>
+    </message>
 </context>
 <context>
     <name>FbTextFrame</name>