]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiDelimiter.cpp
On Linux show in crash message box the backtrace
[lyx.git] / src / frontends / qt4 / GuiDelimiter.cpp
index af4e609e2dafea9ab4bc1da0830e6eeb8a8fb9b8..975001b8ea544d2e141bf3fb40d36fe5a922b2ec 100644 (file)
@@ -41,6 +41,7 @@ namespace {
 static char const *  latex_delimiters[] = {
        "(", ")", "{", "}", "[", "]",
        "lceil", "rceil", "lfloor", "rfloor", "langle", "rangle",
+       "llbracket", "rrbracket",
        "uparrow", "updownarrow", "Uparrow", "Updownarrow", "downarrow", "Downarrow",
        "|", "Vert", "/", "backslash", ""
 };
@@ -114,6 +115,8 @@ void initMathSymbols()
        math_symbols_["rfloor"] = MathSymbol(0x230B, 99, CMSY_FAMILY);
        math_symbols_["langle"] = MathSymbol(0x2329, 104, CMSY_FAMILY);
        math_symbols_["rangle"] = MathSymbol(0x232A, 105, CMSY_FAMILY);
+       math_symbols_["llbracket"] = MathSymbol(0x27e6, 74, STMARY_FAMILY);
+       math_symbols_["rrbracket"] = MathSymbol(0x27e7, 75, STMARY_FAMILY);
        math_symbols_["uparrow"] = MathSymbol(0x2191, 34, CMSY_FAMILY);
        math_symbols_["Uparrow"] = MathSymbol(0x21D1, 42, CMSY_FAMILY);
        math_symbols_["updownarrow"] = MathSymbol(0x2195, 108, CMSY_FAMILY);
@@ -138,7 +141,7 @@ MathSymbol const & mathSymbol(string tex_name)
        map<string, MathSymbol>::const_iterator it =
                math_symbols_.find(tex_name);
 
-       static MathSymbol unknown_symbol;
+       static MathSymbol const unknown_symbol;
        if (it == math_symbols_.end())
                return unknown_symbol;
 
@@ -151,7 +154,7 @@ string const & texName(char_type math_symbol)
        map<char_type, string>::const_iterator it =
                tex_names_.find(math_symbol);
 
-       static string empty_string;
+       static string const empty_string;
        if (it == tex_names_.end())
                return empty_string;
 
@@ -173,6 +176,9 @@ GuiDelimiter::GuiDelimiter(GuiView & lv)
        leftLW->setViewMode(QListView::IconMode);
        rightLW->setViewMode(QListView::IconMode);
 
+       leftLW->setDragDropMode(QAbstractItemView::NoDragDrop);
+       rightLW->setDragDropMode(QAbstractItemView::NoDragDrop);
+
        initMathSymbols();
 
        typedef map<char_type, QListWidgetItem *> ListItems;
@@ -230,6 +236,8 @@ char_type GuiDelimiter::doMatch(char_type const symbol)
        else if (str == "lfloor") match = "rfloor";
        else if (str == "rangle") match = "langle";
        else if (str == "langle") match = "rangle";
+       else if (str == "llbracket") match = "rrbracket";
+       else if (str == "rrbracket") match = "llbracket";
        else if (str == "backslash") match = "/";
        else if (str == "/") match = "backslash";
        else return symbol;
@@ -296,6 +304,9 @@ void GuiDelimiter::on_sizeCO_activated(int index)
 
 void GuiDelimiter::on_leftLW_itemActivated(QListWidgetItem *)
 {
+       // do not auto-apply if !matchCB->isChecked()
+       if (!matchCB->isChecked())
+               return;
        on_insertPB_clicked();
        accept();
 }
@@ -303,6 +314,9 @@ void GuiDelimiter::on_leftLW_itemActivated(QListWidgetItem *)
 
 void GuiDelimiter::on_rightLW_itemActivated(QListWidgetItem *)
 {
+       // do not auto-apply if !matchCB->isChecked()
+       if (!matchCB->isChecked())
+               return;
        on_insertPB_clicked();
        accept();
 }