[prev in list] [next in list] [prev in thread] [next in thread]
List: kwrite-devel
Subject: Re: [PATCH] kate supports select charset.
From: Takumi ASAKI <asataku () osk3 ! 3web ! ne ! jp>
Date: 2002-03-12 15:18:25
[Download RAW message or body]
Christoph Cullmann wrote:
>I would like for konqui (as we are in readonly mode there) the autoreload on
>character set change, like in khtml itself ;)
I remake patch for kateparts.
for readonly file, It's reload automaticaly.
Please review it.
--
Che Che - Bye Bye
From: Takumi ASAKI <asataku@osk3.3web.ne.jp>
URL: http://www3.osk.3web.ne.jp/~asataku/
["kdelibs-3.0-cvs-kate-charset-20020309.diff" (text/x-diff)]
diff -ur kdelibs.orig/kate/data/katepartreadonlyui.rc \
kdelibs/kate/data/katepartreadonlyui.rc
--- kdelibs.orig/kate/data/katepartreadonlyui.rc Mon Feb 11 00:25:18 2002
+++ kdelibs/kate/data/katepartreadonlyui.rc Fri Mar 8 09:00:01 2002
@@ -30,6 +30,7 @@
<Action name="view_line_numbers"/>
<Action name="set_highlight"/>
<Action name="set_eol"/>
+ <Action name="set_charset"/>
</Menu>
</MenuBar>
diff -ur kdelibs.orig/kate/data/katepartui.rc kdelibs/kate/data/katepartui.rc
--- kdelibs.orig/kate/data/katepartui.rc Fri Jan 25 22:57:07 2002
+++ kdelibs/kate/data/katepartui.rc Fri Mar 8 09:00:01 2002
@@ -50,6 +50,7 @@
<Action name="view_line_numbers"/>
<Action name="set_highlight"/>
<Action name="set_eol"/>
+ <Action name="set_charset"/>
</Menu>
</MenuBar>
diff -ur kdelibs.orig/kate/part/kateview.cpp kdelibs/kate/part/kateview.cpp
--- kdelibs.orig/kate/part/kateview.cpp Fri Mar 8 01:49:01 2002
+++ kdelibs/kate/part/kateview.cpp Sat Mar 9 18:51:07 2002
@@ -1542,6 +1542,12 @@
list.append("&Windows/Dos");
list.append("&Macintosh");
setEndOfLine->setItems(list);
+
+ setCharset = new KSelectAction(i18n("&Charsets"), 0, ac, "set_charset");
+ connect(setCharset, SIGNAL(activated(int)), this, SLOT(setEncoding(int)));
+ list = KGlobal::charsets()->availableEncodingNames();
+ list.prepend( i18n( "Auto" ) );
+ setCharset->setItems(list);
}
void KateView::slotUpdate()
@@ -1554,7 +1560,14 @@
int eol = getEol();
eol = eol>=1 ? eol : 0;
- setEndOfLine->setCurrentItem(eol);
+ setEndOfLine->setCurrentItem(eol);
+
+ QString enc = myDoc->encoding();
+ int chset = KGlobal::charsets()->availableEncodingNames().findIndex(enc);
+ if (chset < 0) /* Try again with upper */
+ chset = KGlobal::charsets()->availableEncodingNames().findIndex(enc.lower());
+ chset = chset >= 0 ? chset + 1 : 0;
+ setCharset->setCurrentItem(chset);
}
void KateView::slotNewUndo()
@@ -2469,6 +2482,22 @@
myDoc->setModified(true);
}
+void KateView::setEncoding(int chset) {
+ QString enc;
+ if (chset == 0) {
+ enc = QTextCodec::codecForLocale()->name();
+ } else {
+ enc = KGlobal::charsets()->availableEncodingNames()[chset-1];
+ // enc = KGlobal::charsets()->encodingForName(KGlobal::charsets()->availableEncodingNames()[chset-1]);
+ }
+ // kdDebug() << "seEncoding(" << chset << "): encoding = " << enc << endl;
+ myDoc->setEncoding(enc);
+ // myDoc->setModified(true);
+ if (!doc()->isReadWrite()) {
+ myDoc->reloadFile();
+ }
+}
+
void KateView::resizeEvent(QResizeEvent *)
{
myViewInternal->tagAll();
diff -ur kdelibs.orig/kate/part/kateview.h kdelibs/kate/part/kateview.h
--- kdelibs.orig/kate/part/kateview.h Fri Mar 8 01:49:01 2002
+++ kdelibs/kate/part/kateview.h Fri Mar 8 09:00:01 2002
@@ -365,6 +365,7 @@
// KToggleAction *viewLineNumbers;
KRecentFilesAction *fileRecent;
KSelectAction *setEndOfLine;
+ KSelectAction *setCharset;
Kate::ActionMenu *setHighlight;
private slots:
@@ -594,6 +595,10 @@
* Set the end of line mode (Unix, Macintosh or Dos)
*/
void setEol(int);
+ /**
+ Set the File Encoding
+ */
+ void setEncoding(int);
private:
void resizeEvent(QResizeEvent *);
_______________________________________________
kwrite-devel mailing list
kwrite-devel@mail.kde.org
http://mail.kde.org/mailman/listinfo/kwrite-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic