summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-01 11:19:13 (UTC)
committer zautrix <zautrix>2005-07-01 11:19:13 (UTC)
commit5d603fd22bc8126c6a9a6f377701669d3cee18f2 (patch) (side-by-side diff)
tree9fdef25d24a3a57e3ecf5ae2e4b1cc3d3fb0e0bf
parent409f5296344084e22833b35c03923b89d7be653b (diff)
downloadkdepimpi-5d603fd22bc8126c6a9a6f377701669d3cee18f2.zip
kdepimpi-5d603fd22bc8126c6a9a6f377701669d3cee18f2.tar.gz
kdepimpi-5d603fd22bc8126c6a9a6f377701669d3cee18f2.tar.bz2
many menu fixes
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt15
-rw-r--r--desktop/rpm/kdepim_rpm2
-rw-r--r--korganizer/calendarview.cpp11
-rw-r--r--korganizer/calendarview.h1
-rw-r--r--korganizer/kolistview.cpp3
-rw-r--r--korganizer/kotodoview.cpp4
-rw-r--r--korganizer/mainwindow.cpp167
-rw-r--r--korganizer/mainwindow.h1
-rw-r--r--version2
9 files changed, 126 insertions, 80 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 3daf215..2bfdb2f 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -308,9 +308,9 @@
{ "Private","Privat" },
{ "Proceed","Weiter" },
{ "Public","Öffentlich" },
{ "Purge","Entferne" },
-{ "Purge Completed","Entferne erledigte Todos" },
+{ "Purge Completed...","Entferne erledigte Todos..." },
{ "Purge Todos","Todos bereinigen" },
{ "read-only","schreibgeschützt" },
{ "Recur every","Wiederh. alle" },
{ "Recur in the month of","Wiederh. im Monat" },
@@ -472,9 +472,9 @@
{ "ViewChange","Ansichtswechsel" },
{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" },
{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" },
{ "File","Datei" },
-{ "Clone...","Dupliziere.." },
+{ "Clone...","Dupliziere..." },
{ "Move...","Bewege..." },
{ "Beam...","Sende via IR..." },
{ "&Clone...","Dupliziere.." },
{ "&Move...","Bewege..." },
@@ -544,9 +544,8 @@
{ " Local time ", " Lokale Zeit " },
{ "Manage new Categories","Verwalte neue Kategorien" },
{ "Add to category list","Füge zur Kategorieliste hinzu" },
{ "Remove from Events/Todos","Entferne von Terminen/Todos" },
-{ "After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nTerminen oder Todos geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " },
{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" },
{ "File format","Datei Format" },
{ "Time format","Zeit Format" },
{ "KO/Pi:Saving Data to File ...","KO/Pi: Speichere Kalender in Datei ..." },
@@ -1465,8 +1464,18 @@
{ "Title: ","Titel: " },
{ "Journal from: ","Journal vom: " },
{ "Journal: %1 from ","Journal: %1 vom " },
{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" },
+{ "Selected Item","Ausgewähltes Item" },
+{ "Select Date...","Wähle Datum..." },
+{ "After importing/loading/syncing there may be new categories in events or todos which are not added automatically to the category list. Please choose what to do <b>now</b>:","Nach dem Importieren/Laden/Syncen kann es neue Kategorien in den Terminen oder Todos geben, die nicht automatisch der Kategorieliste hinzugefügt werden. Bitte wählen Sie, was <b>jetzt</b> passieren soll:" },
+{ "Change category list now!","Ändere Kategorieliste jetzt!" },
+{ "Edit category list...","Ändere Kategorieliste..." },
+{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" },
+{ "","" },
+{ "","" },
+{ "","" },
+{ "","" },
{ "","" },
{ "","" },
{ "","" },
{ "","" }, \ No newline at end of file
diff --git a/desktop/rpm/kdepim_rpm b/desktop/rpm/kdepim_rpm
index 279bbd4..d29ab72 100644
--- a/desktop/rpm/kdepim_rpm
+++ b/desktop/rpm/kdepim_rpm
@@ -1,7 +1,7 @@
Summary: A collection of PIM programs
Name: KDE-Pim-Pi
-Version: 2.1.11
+Version: 2.1.12
Release: SuSE_9.2
Copyright:GPL
Group: Productivity/Pim
Source:http://sourceforge.net/projects/kdepimpi/
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index d0de233..c0f3be7 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -115,8 +115,9 @@
#include "resourceview.h"
#include "navigatorbar.h"
#include "searchdialog.h"
#include "mainwindow.h"
+#include "categoryeditdialog.h"
#include "calendarview.h"
#ifndef DESKTOP_VERSION
#include <qtopia/alarmserver.h>
@@ -312,17 +313,17 @@ class KOCatPrefs : public QDialog
setCaption( i18n("Manage new Categories") );
QVBoxLayout* lay = new QVBoxLayout( this );
lay->setSpacing( 3 );
lay->setMargin( 3 );
- QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n "), this );
+ QLabel * lab = new QLabel( i18n("After importing/loading/syncing there may be new categories in events or todos which are not added automatically to the category list. Please choose what to do <b>now</b>:"), this );
lay->addWidget( lab );
QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this );
lay->addWidget( format );
format->setExclusive ( true ) ;
addCatBut = new QRadioButton(i18n("Add to category list"), format );
new QRadioButton(i18n("Remove from Events/Todos"), format );
addCatBut->setChecked( true );
- QPushButton * ok = new QPushButton( i18n("OK"), this );
+ QPushButton * ok = new QPushButton( i18n("Change category list now!"), this );
lay->addWidget( ok );
QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
lay->addWidget( cancel );
connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
@@ -2817,8 +2818,14 @@ int CalendarView::addCategories()
KOPrefs::instance()->mCustomCategories = catList;
return count;
}
+void CalendarView::editCategories()
+{
+ qDebug("CalendarView::editCategories() ");
+ KPIM::CategoryEditDialog ced (KOPrefs::instance(),this );
+ ced.exec();
+}
void CalendarView::manageCategories()
{
KOCatPrefs* cp = new KOCatPrefs();
cp->show();
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index f7e5366..3323a98 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -484,8 +484,9 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
void beamCalendar() ;
void beamFilteredCalendar() ;
void beamIncidenceList(QPtrList<Incidence>) ;
void manageCategories();
+ void editCategories();
int addCategories();
void removeCategories();
void setSyncDevice( QString );
void setSyncName( QString );
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index 43e1113..517677c 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -437,9 +437,10 @@ void KOListView::populateCalPopup()
{
mCalPopup->clear();
KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
while ( kkf ) {
- mCalPopup->insertItem( kkf->mName, kkf->mCalNumber);
+ int index = mCalPopup->insertItem( kkf->mName, kkf->mCalNumber);
+ mCalPopup->setItemEnabled( index, !kkf->isReadOnly );
kkf = KOPrefs::instance()->mCalendars.next();
}
}
void KOListView::updateList()
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 873a776..8d354c8 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -600,9 +600,9 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
mItemPopupMenu->insertItem(i18n("Reparent Todo"), this,
SLOT (reparentTodo()),0,22);
mItemPopupMenu->insertSeparator();
#if 0
- mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed"),
+ mItemPopupMenu->insertItem(i18n("Delete completed To-Dos","Purge Completed..."),
this, SLOT( purgeCompleted() ) );
mItemPopupMenu->insertItem(i18n("toggle completed To-Dos","Show Completed"),
this, SLOT( toggleCompleted() ),0, 33 );
mItemPopupMenu->insertItem(i18n("toggle quick todo","Show Quick Todo"),
@@ -613,9 +613,9 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
#endif
mPopupMenu = new QPopupMenu(this);
mPopupMenu->insertItem(SmallIconSet("todo"), i18n("New Todo..."), this,
SLOT (newTodo()),0,1);
- mPopupMenu->insertItem(i18n("delete completed To-Dos","Purge Completed"),
+ mPopupMenu->insertItem(i18n("delete completed To-Dos","Purge Completed..."),
this, SLOT(purgeCompleted()),0,2);
mPopupMenu->insertItem(i18n("Show Completed"),
this, SLOT( toggleCompleted() ),0,3 );
mPopupMenu->insertItem(i18n("toggle running todo","Hide not Running"),
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 23537a6..a5d8824 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -653,8 +653,13 @@ void MainWindow::initActions()
//QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
QPopupMenu *viewMenu = new QPopupMenu( this );
QPopupMenu *actionMenu = new QPopupMenu( this );
+#ifdef DESKTOP_VERSION
+ mCurrentItemMenu = actionMenu;
+#else
+ mCurrentItemMenu = new QPopupMenu ( this );
+#endif
QPopupMenu *importMenu = new QPopupMenu( this );
QPopupMenu *importMenu_X = new QPopupMenu( this );
QPopupMenu *exportMenu_X = new QPopupMenu( this );
QPopupMenu *beamMenu_X = new QPopupMenu( this );
@@ -764,26 +769,34 @@ void MainWindow::initActions()
//configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
connect( configureAgendaMenu, SIGNAL( aboutToShow()),
this, SLOT( showConfigureAgenda( ) ) );
+ icon = loadPixmap( pathString + "today" );
+ QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
+ today_action->addTo( actionMenu );
+ connect( today_action, SIGNAL( activated() ),
+ mView, SLOT( goToday() ) );
+
+ icon = loadPixmap( pathString + "picker" );
+ QAction* dPickerAction = new QAction( i18n("Select Date..."), icon, i18n("Select Date..."), 0, this );
+ dPickerAction->addTo( actionMenu );
+ connect( dPickerAction, SIGNAL( activated() ),
+ mView, SLOT( showDatePicker() ) );
+
+ icon = loadPixmap( pathString + "search" );
+ QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
+ search_action->addTo( actionMenu );
+ connect( search_action, SIGNAL( activated() ),
+ mView->dialogManager(), SLOT( showSearchDialog() ) );
- icon = loadPixmap( pathString + "configure" );
- action = new QAction( i18n("Configure"),icon, i18n("Configure KO/Pi..."), 0, this );
- action->addTo( actionMenu );
- connect( action, SIGNAL( activated() ),
- mView, SLOT( edit_options() ) );
- icon = loadPixmap( pathString + "configure" );
- action = new QAction( i18n("Configure"),icon, i18n("Global Settings..."), 0, this );
- action->addTo( actionMenu );
- connect( action, SIGNAL( activated() ),
- mView, SLOT( edit_global_options() ) );
actionMenu->insertSeparator();
+
+
action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this );
action->addTo( actionMenu );
connect( action, SIGNAL( activated() ),
mView, SLOT( undo_delete() ) );
- actionMenu->insertSeparator();
icon = loadPixmap( pathString + "newevent" );
configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
configureToolBarMenu->insertItem(i18n("Only one toolbar"), 6 );
@@ -791,8 +804,49 @@ void MainWindow::initActions()
configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 );
configureToolBarMenu->insertSeparator();
configureToolBarMenu->insertItem(i18n("Week Number"), 400);
configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
+
+#ifndef DESKTOP_VERSION
+ actionMenu->insertItem ( i18n("Selected Item"), mCurrentItemMenu);
+#endif
+ mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
+ mShowAction->addTo( mCurrentItemMenu );
+ connect( mShowAction, SIGNAL( activated() ),
+ mView, SLOT( showIncidence() ) );
+
+ mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
+ mEditAction->addTo( mCurrentItemMenu );
+ connect( mEditAction, SIGNAL( activated() ),
+ mView, SLOT( editIncidence() ) );
+
+ mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
+ mDeleteAction->addTo( mCurrentItemMenu );
+ connect( mDeleteAction, SIGNAL( activated() ),
+ mView, SLOT( deleteIncidence() ) );
+
+
+ mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
+ mCloneAction->addTo( mCurrentItemMenu );
+ connect( mCloneAction, SIGNAL( activated() ),
+ mView, SLOT( cloneIncidence() ) );
+ mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
+ mMoveAction->addTo( mCurrentItemMenu );
+ connect( mMoveAction, SIGNAL( activated() ),
+ mView, SLOT( moveIncidence() ) );
+ mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
+ mBeamAction->addTo(mCurrentItemMenu );
+ connect( mBeamAction, SIGNAL( activated() ),
+ mView, SLOT( beamIncidence() ) );
+ mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
+ mCancelAction->addTo( mCurrentItemMenu );
+ connect( mCancelAction, SIGNAL( activated() ),
+ mView, SLOT( toggleCancelIncidence() ) );
+#ifdef DESKTOP_VERSION
+ actionMenu->insertSeparator();
+#endif
+
+
QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
ne_action->addTo( actionMenu );
connect( ne_action, SIGNAL( activated() ),
mView, SLOT( newEvent() ) );
@@ -802,14 +856,9 @@ void MainWindow::initActions()
nt_action->addTo( actionMenu );
connect( nt_action, SIGNAL( activated() ),
mView, SLOT( newTodo() ) );
- icon = loadPixmap( pathString + "today" );
- QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
- today_action->addTo( viewMenu );
- connect( today_action, SIGNAL( activated() ),
- mView, SLOT( goToday() ) );
- viewMenu->insertSeparator();
+
// ***********************
if ( KOPrefs::instance()->mVerticalScreen ) {
icon = SmallIcon( "1updownarrow" );
@@ -854,15 +903,10 @@ void MainWindow::initActions()
mToggleAllday, SLOT( setEnabled ( bool ) ) );
// connect( mView->viewManager(), SIGNAL( signalAgendaView( bool ) ),
// configureAgendaMenu, SLOT( setEnabled ( bool ) ) );
- viewMenu->insertSeparator();
- icon = loadPixmap( pathString + "picker" );
- action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
- action->addTo( viewMenu );
- connect( action, SIGNAL( activated() ),
- mView, SLOT( showDatePicker() ) );
- action->addTo( iconToolBar );
+
+ dPickerAction->addTo( iconToolBar );
viewMenu->insertSeparator();
if ( p-> mShowIconToggleFull )
FSaction->addTo( iconToolBar );
@@ -959,61 +1003,42 @@ void MainWindow::initActions()
mNewSubTodoAction->addTo( actionMenu );
connect( mNewSubTodoAction, SIGNAL( activated() ),
mView, SLOT( newSubTodo() ) );
- actionMenu->insertSeparator();
-
- mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
- mShowAction->addTo( actionMenu );
- connect( mShowAction, SIGNAL( activated() ),
- mView, SLOT( showIncidence() ) );
+ action = new QAction( "purge_completed", i18n("Purge Completed..."), 0,
+ this );
+ action->addTo( actionMenu );
+ connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
- mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
- mEditAction->addTo( actionMenu );
- connect( mEditAction, SIGNAL( activated() ),
- mView, SLOT( editIncidence() ) );
- mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
- mDeleteAction->addTo( actionMenu );
- connect( mDeleteAction, SIGNAL( activated() ),
- mView, SLOT( deleteIncidence() ) );
+ configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5);
- mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
- mCloneAction->addTo( actionMenu );
- connect( mCloneAction, SIGNAL( activated() ),
- mView, SLOT( cloneIncidence() ) );
- mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
- mMoveAction->addTo( actionMenu );
- connect( mMoveAction, SIGNAL( activated() ),
- mView, SLOT( moveIncidence() ) );
- mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
- mBeamAction->addTo( actionMenu );
- connect( mBeamAction, SIGNAL( activated() ),
- mView, SLOT( beamIncidence() ) );
- mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
- mCancelAction->addTo( actionMenu );
- connect( mCancelAction, SIGNAL( activated() ),
- mView, SLOT( toggleCancelIncidence() ) );
actionMenu->insertSeparator();
-
- action = new QAction( "purge_completed", i18n("Purge Completed"), 0,
+ action = new QAction( "manage cat", i18n("Edit category list..."), 0,
this );
action->addTo( actionMenu );
- connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
-
- icon = loadPixmap( pathString + "search" );
- QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
- configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 5);
- search_action->addTo( actionMenu );
- connect( search_action, SIGNAL( activated() ),
- mView->dialogManager(), SLOT( showSearchDialog() ) );
+ connect( action, SIGNAL( activated() ), mView, SLOT( editCategories() ) );
+ action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
+ this );
+ action->addTo( actionMenu );
+ connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
- if ( KOPrefs::instance()->mShowFullMenu ) {
actionMenu->insertSeparator();
+ icon = loadPixmap( pathString + "configure" );
+ action = new QAction( i18n("Configure"),icon, i18n("Configure KO/Pi..."), 0, this );
+ action->addTo( actionMenu );
+ connect( action, SIGNAL( activated() ),
+ mView, SLOT( edit_options() ) );
+ icon = loadPixmap( pathString + "configure" );
+ action = new QAction( i18n("Configure"),icon, i18n("Global Settings..."), 0, this );
+ action->addTo( actionMenu );
+ connect( action, SIGNAL( activated() ),
+ mView, SLOT( edit_global_options() ) );
+ if ( KOPrefs::instance()->mShowFullMenu ) {
actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
}
// actionMenu->insertSeparator();
@@ -1123,13 +1148,9 @@ void MainWindow::initActions()
mView, SLOT( slotprintSelInc() ) );
importMenu->insertItem( i18n("Print"), beamMenu_X );
#endif
- importMenu->insertSeparator();
- action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
- this );
- action->addTo( importMenu );
- connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
+
importMenu->insertSeparator();
action = new QAction( "beam all", i18n("Save"), 0,
this );
action->addTo( importMenu );
@@ -1713,16 +1734,21 @@ void MainWindow::processIncidenceSelection( Incidence *incidence )
}
void MainWindow::enableIncidenceActions( bool enabled )
{
+
+#ifndef DESKTOP_VERSION
+ mCurrentItemMenu->setEnabled( enabled );
+#else
mShowAction->setEnabled( enabled );
mEditAction->setEnabled( enabled );
mDeleteAction->setEnabled( enabled );
mCloneAction->setEnabled( enabled );
mMoveAction->setEnabled( enabled );
mBeamAction->setEnabled( enabled );
mCancelAction->setEnabled( enabled );
+#endif
}
void MainWindow::importOL()
{
@@ -2273,8 +2299,9 @@ void MainWindow::configureToolBar( int item )
p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 );
p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 );
p-> mShowIconWeekNum= configureToolBarMenu->isItemChecked( 400 );
// initActions();
+ setCaption ( i18n("Toolbar changes needs a restart!") );
}
void MainWindow::setCaption ( const QString & c )
{
QString cap = c;
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index a4d0523..953774f 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -128,8 +128,9 @@ class MainWindow : public QMainWindow
QPEToolBar *navigatorToolBar;
QPEToolBar *filterToolBar;
QMenuBar *filterMenubar;
QPopupMenu * filterPopupMenu;
+ QPopupMenu * mCurrentItemMenu;
void initActions();
void setDefaultPreferences();
void resizeEvent( QResizeEvent* e);
void keyPressEvent ( QKeyEvent * ) ;
diff --git a/version b/version
index 6a9a414..8ab3bd7 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-version = "2.1.11";
+version = "2.1.12";